home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 November: Tool Chest / Dev.CD Nov 00 TC Disk 2.toast / pc / sample code / printing / std file saver / source / settingsutils.c < prev    next >
Encoding:
C/C++ Source or Header  |  2000-09-28  |  1.8 KB  |  75 lines

  1. #include <Types.h>
  2. #include <Resources.h>
  3.  
  4. #include "SettingsUtils.h"
  5.  
  6. /*********************************************************************************/
  7. /* settings utils */
  8. enum {
  9.     settingsType = 'SFpf',
  10.     settingsID = -4080
  11. };
  12.  
  13. void SaveSettings(settingsHandle theSettings)
  14. {
  15.     Str255    foo;
  16.     if (!theSettings) {
  17.         DebugStr("\pBogus settings handle in SaveSettings.");
  18.         return;
  19.     }
  20.     ChangedResource((Handle)theSettings);
  21.     if (ResError()!=noErr) DebugStr("\pError updating resource?!");
  22.     UpdateResFile(CurResFile());
  23.     if (ResError()!=noErr) DebugStr("\pError updating resFile?!");
  24. }
  25.  
  26. settingsHandle RetrieveSettings(void)
  27. {
  28.     Handle    oldSettings = GetResource(settingsType,settingsID);
  29.  
  30.     if (!oldSettings) {
  31.         Handle    theSettings = NewHandleClear(sizeof(settings));
  32.         Str255    foo;
  33.         foo[0] = 0;
  34.         
  35. //        DebugStr("\pAdding new settings resource");
  36.         AddResource(theSettings,settingsType,settingsID,foo);
  37.         if (ResError()!=noErr) DebugStr("\pError adding new resource?!");
  38.         UpdateResFile(CurResFile());
  39.         if (ResError()!=noErr) DebugStr("\pError updating resFile w/new?!");
  40.         oldSettings = theSettings;
  41.     }
  42.  
  43.     if (GetHandleSize(oldSettings)!=sizeof(settings)) {
  44.         DebugStr("\pBad Handle Size in RetrieveSettings");
  45.         return 0;
  46.     }
  47.     return((settingsHandle)oldSettings);
  48. }
  49.  
  50. void SaveItemNumber(short item)
  51. {
  52.     settingsHandle    theSettings = RetrieveSettings();
  53.     (**theSettings).selectedItemNumber = item;
  54.     SaveSettings(theSettings);
  55. }
  56.  
  57. short GetSavedItemNumber(void)
  58. {
  59.     settingsHandle    theSettings = RetrieveSettings();
  60.     return((**theSettings).selectedItemNumber);
  61. }
  62.  
  63. void SaveRadioOption(Boolean state)
  64. {
  65.     settingsHandle    theSettings = RetrieveSettings();
  66.     (**theSettings).isRadioOptionOn = state;
  67.     SaveSettings(theSettings);
  68. }
  69.  
  70. Boolean GetSavedRadioOption(void)
  71. {
  72.     settingsHandle    theSettings = RetrieveSettings();
  73.     return((**theSettings).isRadioOptionOn);
  74. }
  75.